﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DiffusionMonteCarlo
{
    public delegate T PotentialEnergy<F, T>(F x);

    public class Input
    {
        private ulong s;
        private int d, p, N0;
        private double T0, deltaT;
        private double[] deltaR;
        private double[,] x0, mm;

        public ulong Seed
        {
            get { return s; }
            set { s = value; }
        }
        public int SpaceDimension
        {
            get { return d; }
            set { d = value; }
        }
        public int NumberOfParticles
        {
            get { return p; }
            set { p = value; }
        }
        public int InitialNumberOfReplicas
        {
            get {  return N0; }
            set {  N0 = value;}
        }
        public double RunTime
        {
            get { return T0; }
            set { T0 = value; }
        }
        public double ValueOfTimeStep
        {
            get { return deltaT; }
            set { deltaT = value; }
        }
        public double[,] InitialPosition  // [numberOfParticles,SpaceDimension]
        {
            get { return x0; }
            set { x0 = value; }
        }
        public double[,] LimitsOfCoordinates  // [SpaceDimension,2(min,max)]
        {
            get { return mm; }
            set { mm = value; }
        }
        public double[] ValueOfLengthInterval // [SpaceDimension]
        {
            get { return deltaR; }
            set { deltaR = value; }
        }
    }
}
